package com.iva.beam;

import java.util.List;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.iva.model.SgMensajes;
import com.iva.model.SgMensajesEnv;
import com.iva.model.TbPeriodoEvaluacion;
import com.iva.model.VwAlumnosMateria;
import com.iva.model.VwAlumnosUsuario;
import com.iva.model.VwNotas;
import com.iva.model.VwParentesco;
import com.iva.model.VwRotaciones;
import com.iva.service.findService;
import com.iva.service.mensajeService;
import com.iva.service.tareasService;

@Component("parentTabMenuBean")
public class ParentTabMenuBean {
	
	@Autowired
	findService find;
	@Autowired
	tareasService tarea;
	@Autowired
	mensajeService mensaje;
	
	private List<VwParentesco> hijosParent;
	
	public List<VwParentesco> getHijosParent() {
		return hijosParent;
	}

	public void setHijosParent(List<VwParentesco> hijosParent) {
		this.hijosParent = hijosParent;
	}
	
	private int idAlumno;

	public int getIdAlumno() {
		return idAlumno;
	}

	public void setIdAlumno(int idAlumno) {
		this.idAlumno = idAlumno;
	}

	private  List<VwRotaciones> asignacionesMaestro; 
	
	public List<VwRotaciones> getAsignacionesMaestro() {
		return asignacionesMaestro;
	}

	public void setAsignacionesMaestro(List<VwRotaciones> asignacionesMaestro) {
		this.asignacionesMaestro = asignacionesMaestro;
	}

	private VwAlumnosUsuario usuario;
	
	public VwAlumnosUsuario getUsuario() {
		return usuario;
	}

	public void setUsuario(VwAlumnosUsuario usuario) {
		this.usuario = usuario;
	}

	private List<TbPeriodoEvaluacion> listTbPeriodoEvaluacion;
	public List<TbPeriodoEvaluacion> getListTbPeriodoEvaluacion() {
		return listTbPeriodoEvaluacion;
	}

	public void setListTbPeriodoEvaluacion(
			List<TbPeriodoEvaluacion> listTbPeriodoEvaluacion) {
		this.listTbPeriodoEvaluacion = listTbPeriodoEvaluacion;
	}

	private String idMateriaSeccion;
	public String getIdMateriaSeccion() {
		return idMateriaSeccion;
	}

	public void setIdMateriaSeccion(String idMateriaSeccion) {
		this.idMateriaSeccion = idMateriaSeccion;
	}

	public String getIdperiodo() {
		return idperiodo;
	}

	public void setIdperiodo(String idperiodo) {
		this.idperiodo = idperiodo;
	}

	private String idperiodo;
	public List<SgMensajes> getListSgMensajes() {
		return listSgMensajes;
	}

	public void setListSgMensajes(List<SgMensajes> listSgMensajes) {
		this.listSgMensajes = listSgMensajes;
	}

	public List<SgMensajesEnv> getListSgMensajesEnv() {
		return listSgMensajesEnv;
	}

	public void setListSgMensajesEnv(List<SgMensajesEnv> listSgMensajesEnv) {
		this.listSgMensajesEnv = listSgMensajesEnv;
	}

	public SgMensajes getsGMensajes() {
		return sGMensajes;
	}

	public void setsGMensajes(SgMensajes sGMensajes) {
		this.sGMensajes = sGMensajes;
	}

	public SgMensajesEnv getsGMensajesEnv() {
		return sGMensajesEnv;
	}

	public void setsGMensajesEnv(SgMensajesEnv sGMensajesEnv) {
		this.sGMensajesEnv = sGMensajesEnv;
	}

	private List<SgMensajes> listSgMensajes;
	private List<SgMensajesEnv> listSgMensajesEnv;
	private static String TEMPUSER = "FF001";
	private SgMensajes sGMensajes;
	private SgMensajesEnv sGMensajesEnv;
	
	private String hijo;	
	
	
	public String getHijo() {
		return hijo;
	}

	public void setHijo(String hijo) {
		this.hijo = hijo;
	}

	public  String  ALUMNO_CODIGO;
	
	public  String getALUMNO_CODIGO() {
		return ALUMNO_CODIGO;
	}

	public  void setALUMNO_CODIGO(String aLUMNO_CODIGO) {
		ALUMNO_CODIGO = aLUMNO_CODIGO;
	}

	private List<VwNotas> listNotas;
	public List<VwNotas> getListNotas() {
		return listNotas;
	}
	
	private VwNotas selectVwNotas;
	public VwNotas getSelectVwNotas() {
		return selectVwNotas;
	}

	public void setSelectVwNotas(VwNotas selectVwNotas) {
		this.selectVwNotas = selectVwNotas;
	}

	public void setListNotas(List<VwNotas> listNotas) {
		this.listNotas = listNotas;
	}

	private int activeindex;
	
	public int getActiveindex() {
		return activeindex;
	}

	public void setActiveindex(int activeindex) {
		this.activeindex = activeindex;
	}
	
	private List<VwAlumnosMateria> materiasAlumno;
	private List<VwNotas> listNotasEnviadas;
	public List<VwNotas> getListNotasEnviadas() {
		return listNotasEnviadas;
	}

	public void setListNotasEnviadas(List<VwNotas> listNotasEnviadas) {
		this.listNotasEnviadas = listNotasEnviadas;
	}

	private List<VwNotas> listNotasCalificadas;
	public List<VwNotas> getListNotasCalificadas() {
		return listNotasCalificadas;
	}

	public void setListNotasCalificadas(List<VwNotas> listNotasCalificadas) {
		this.listNotasCalificadas = listNotasCalificadas;
	}

	private List<VwNotas> listNotasAtrasadas;
	public List<VwNotas> getListNotasAtrasadas() {
		return listNotasAtrasadas;
	}

	public void setListNotasAtrasadas(List<VwNotas> listNotasAtrasadas) {
		this.listNotasAtrasadas = listNotasAtrasadas;
	}

	private List<VwNotas> listNotasPendientes;
	
	

	public List<VwNotas> getListNotasPendientes() {
		return listNotasPendientes;
	}

	public void setListNotasPendientes(List<VwNotas> listNotasPendientes) {
		this.listNotasPendientes = listNotasPendientes;
	}

	public List<VwAlumnosMateria> getMateriasAlumno() {
			
			return this.materiasAlumno;
					
		}
		public void setMateriasAlumno(List<VwAlumnosMateria> materiasAlumno) {
			this.materiasAlumno = materiasAlumno;
		}


	public String Dirige(int index){
		String tabName =null;
		System.out.println("Ingreso como padre");

		List<VwAlumnosUsuario> listUsuarios = null;
        HttpSession session = ( HttpSession ) FacesContext.getCurrentInstance().getExternalContext().getSession( true );
        
        this.usuario = (VwAlumnosUsuario)session.getAttribute("dto");
        this.hijosParent = find.listVwAlumnoEncargado(this.usuario.getId().getNombreUsuario());
        //Solo el primer hijo?
        int i = this.hijosParent.size();
        this.hijo = "";
        for(VwParentesco par: this.hijosParent){
		this.hijo += "'" + par.getId().getCodigoAlumno() + "'";
		System.out.println(i);
		if(--i != 0){
			this.hijo += ",";
		}
		System.out.println(i);
        }
        
        
        this.activeindex = index;
		switch(index){
		case 0:{
			
			System.out.println("hijo es : " + hijo + " 1 de " + hijosParent.size());
			tabName = "parentTareasTab";
			String sql = "where id.codigoAlumno in ("+hijo+") and id.idActividad=12";
			this.listNotas = tarea.listVwNotas(sql);
			String sqlEnv = "where id.codigoAlumno in ("+hijo+") and id.idActividad=12 and id.estadoActividad in('E','O')";
			this.listNotasEnviadas = tarea.listVwNotas(sqlEnv);
			String sqlCal = "where id.codigoAlumno in ("+hijo+") and id.idActividad=12 and id.estadoActividad='C'";
			this.listNotasCalificadas =  tarea.listVwNotas(sqlCal);
			String sqlAtras = "where id.codigoAlumno in ("+hijo+") and id.idActividad=12 and id.estadoActividad='A'";
			this.listNotasAtrasadas = tarea.listVwNotas(sqlAtras);
			String sqlPend = "where id.codigoAlumno in ("+hijo+") and id.idActividad=12 and id.estadoActividad='P'";
			this.listNotasPendientes = tarea.listVwNotas(sqlPend);
			System.out.println("Ingreso Opcion Tareas");
		};
			
			break;
		case 1:{
			tabName = "parentActividadesTab";
			String sql = "where id.codigoAlumno in ("+hijo+") and id.idActividad=14";
			this.listNotas = tarea.listVwNotas(sql);
		};
			break;
		case 2:{
			tabName = "parentMensajesTab";
			String query1 = "where codigoReceptor = '"+usuario.getId().getNombreUsuario()+"'";
			String query = "where codigoEmisario = '"+usuario.getId().getNombreUsuario()+"'";
			this.listSgMensajes = mensaje.listSgMensajes(query1);
			this.listSgMensajesEnv = mensaje.listSgMensajesEnv(query);
		};
			break;
		case 3:{
String sql = "where id.codigoAlumno in ("+hijo+")";
			this.listNotas = tarea.listVwNotas(sql);
this.listTbPeriodoEvaluacion = tarea.listTbPeriodoEvaluacion(null);
			tabName = "parentNotasTab";
		};
			
			break;
		default :
			System.out.println("error");
			
		}
		
		
//		this.hijosParent = find.listVwAlumnoEncargado(this.usuario.getId().getNombreUsuario());
		System.out.println("Sale Opcion Padre");
		return tabName;
	}
	
	
	
	public void searchResults(){
		System.out.println("id materia "+ idMateriaSeccion);
		System.out.println("id periodo "+idperiodo);
	}
}
